#ifndef IServerObject_h__
#define IServerObject_h__

#include <boost/shared_ptr.hpp>
#include <boost/function.hpp>
#include "StdCmm.h"

class IPropertyParser;
class ISessionManager;
class ITimerManager;
class ITCPClient;
class ILoggerManager;

class IServerObject
{
protected:
	virtual ~IServerObject() {}

public:
	//////////////////////////////////////////////////////////////////////////
	virtual void registerCmdHandler(int cmd,   void* pKey, const MessageHandler & handler) = 0;
	virtual void unregisterCmdHandler(int cmd, void* pKey) = 0;

	virtual IPropertyParser* getPropertyParser() = 0;
	virtual ISessionManager* getSessionManager() = 0;
	virtual ITimerManager*   getTimerManager() = 0;
	virtual ITCPClient*		 getTCPClient() = 0;
	virtual ILoggerManager*	 getLoggerManager() = 0;
};


#endif // IServerObject_h__
